package com.example.authsample;
import java.util.LinkedList;
import java.util.List;
import android.app.ListFragment;
import android.content.Context;
import android.os.Bundle;
import android.text.format.DateFormat;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import com.google.cloud.backend.android.CloudEntity;
public class PostListFragment extends ListFragment {
// a list of posts on the UI
List<CloudEntity> posts = new LinkedList<CloudEntity>();
public void setEntities(List<CloudEntity> data) {
posts = data;
CardListAdapter adapter = new CardListAdapter(getActivity(), data);
setListAdapter(adapter);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
int padding = (int) (getResources().getDisplayMetrics().density * 8); // 8dip
ListView listView = getListView();
listView.setPadding(padding, 0, padding, 0);
listView.setScrollBarStyle(ListView.SCROLLBARS_OUTSIDE_OVERLAY);
listView.setDivider(null);
LayoutInflater inflater = LayoutInflater.from(getActivity());
View header = inflater.inflate(R.layout.list_header_footer, listView, false);
View footer = inflater.inflate(R.layout.list_header_footer, listView, false);
listView.addHeaderView(header, null, false);
listView.addFooterView(footer, null, false);
}
public class CardListAdapter extends ArrayAdapter<CloudEntity> {
public CardListAdapter(Context context, List<CloudEntity> data) {
super(context, R.layout.list_item_card, R.id.name, data);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
convertView = super.getView(position, convertView, parent);
CloudEntity item = getItem(position);
TextView tv = (TextView) convertView.findViewById(R.id.name);
tv.setText(getCreatorName(item));
CharSequence time = DateFormat.format("hh:mm:ss ", item.getCreatedAt());
tv = (TextView) convertView.findViewById(R.id.time);
tv.setText(time);
tv = (TextView) convertView.findViewById(R.id.message);
tv.setText(item.get("message") + "");
return convertView;
}
// removing the domain name part from email address
private String getCreatorName(CloudEntity b) {
if (b.getCreatedBy() != null) {
return " " + b.getCreatedBy().replaceFirst("@.*", "");
} else {
return "<anonymous>";
}
}
}
}